import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ConfirmationService } from 'primeng/api';
import { BreadcrumbModule } from 'primeng/breadcrumb';
import { ButtonModule } from 'primeng/button';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { DialogModule } from 'primeng/dialog';
import { EditorModule } from 'primeng/editor';
import { InputSwitchModule } from 'primeng/inputswitch';
import { InputTextModule } from 'primeng/inputtext';
import { MegaMenuModule } from 'primeng/megamenu';
import { MessagesModule } from 'primeng/messages';
import { PaginatorModule } from 'primeng/paginator';
import { ProgressBarModule } from 'primeng/progressbar';
import { ProgressSpinnerModule } from 'primeng/progressspinner';
import { SliderModule } from 'primeng/slider';
import { SplitButtonModule } from 'primeng/splitbutton';
import { TableModule } from 'primeng/table';
import { TreeModule } from 'primeng/tree';
import { RAutioPlayComponent } from './r-component/r-autio-play/r-autio-play.component';
import { CommonListExampleComponent } from './r-component/r-common-list/common-list-example/common-list-example.component';
import { RCommonListComponent } from './r-component/r-common-list/r-common-list.component';
import { RDropdownTreeComponent } from './r-component/r-dropdown-tree/r-dropdown-tree.component';
import { RLoadingComponent } from './r-component/r-loading/r-loading.component';
import { RTableComponent } from './r-component/r-table/r-table.component';
import { RButtonAuthorityDirective } from './r-directive/r-button-authority.directive';
import { RInputChineseDirective } from './r-directive/r-input-chinese.directive';
import { RInputLengthDirective } from './r-directive/r-input-length.directive';
import { RInputPlusNumDirective } from './r-directive/r-input-plus-num.directive';
import { RInputRequiredDirective } from './r-directive/r-input-required.directive';
import { RDictSwitchPipe } from './r-pipe/r-dict-switch.pipe';
import { RDropdownLoadingPipe } from './r-pipe/r-dropdown-loading.pipe';
import { RLangPipe } from './r-pipe/r-lang.pipe';
import { RMultipleSwitchPipe } from './r-pipe/r-multiple-switch.pipe';
import { RTrustHtmlPipe } from './r-pipe/r-trust-html.pipe';
import { RTrustUrlPipe } from './r-pipe/r-trust-url.pipe';

@NgModule({
  declarations: [
    RTableComponent,
    RLoadingComponent,
    RCommonListComponent,
    RDropdownTreeComponent,
    RAutioPlayComponent,
    CommonListExampleComponent,
    RButtonAuthorityDirective,
    RInputChineseDirective,
    RInputPlusNumDirective,
    RInputRequiredDirective,
    RInputLengthDirective,
    RDictSwitchPipe,
    RTrustUrlPipe,
    RDropdownLoadingPipe,
    RMultipleSwitchPipe,
    RLangPipe,
    RTrustHtmlPipe
  ],
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    TableModule,
    PaginatorModule,
    InputSwitchModule,
    MessagesModule,
    ConfirmDialogModule,
    DialogModule,
    ProgressBarModule,
    ProgressSpinnerModule,
    TreeModule,
    SliderModule,
    InputTextModule,
    MegaMenuModule,
    EditorModule,
    ButtonModule,
    SplitButtonModule,
    BreadcrumbModule
  ],
  exports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    TableModule,
    PaginatorModule,
    InputSwitchModule,
    MessagesModule,
    ConfirmDialogModule,
    DialogModule,
    ProgressBarModule,
    ProgressSpinnerModule,
    TreeModule,
    SliderModule,
    InputTextModule,
    MegaMenuModule,
    EditorModule,
    ButtonModule,
    BreadcrumbModule,
    RTableComponent,
    RLoadingComponent,
    RCommonListComponent,
    RDropdownTreeComponent,
    RAutioPlayComponent,
    RButtonAuthorityDirective,
    RInputChineseDirective,
    RInputPlusNumDirective,
    RInputRequiredDirective,
    RInputLengthDirective,
    RDictSwitchPipe,
    RTrustUrlPipe,
    RDropdownLoadingPipe,
    RMultipleSwitchPipe,
    RLangPipe
  ],
  providers: [ConfirmationService]
})
export class RCommonModule { }
